package catchData;

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.log4j.Logger;

import util.CatchDataUtil;

/**
 * @author suwy
 * @date 2014-2-12
 * @todo TODO
 */
public class CatchNationalData2 {

	private static final Logger LOG = Logger.getLogger(CatchNationalData2.class);
	private static String secondURL = "http://data.stats.gov.cn/quotas/getchildren?dbcode=hgnd&dimension=zb";
	private static String level2 = "&level=2&code=";
	
	private void excute() {
		HttpClient client = CatchDataUtil.initHttpClient();
		GetMethod secondGet = null;
		String[] codes = {
//				"A0101",
//				"A0102",
//				"A0103",
//				"A0104",
//				"A0105",
//				"A0201",
//				"A0203",
//				"A0204",
//				"A0205",
//				"A0206",
//				"A0207",
//				"A0208",
//				"A0209",
//				"A020A",
//				"A020B",
//				"A020C",
//				"A020D",
//				"A020E",
//				"A020F",
//				"A020G",
//				"A0301",
//				"A0302",
//				"A0303",
//				"A0304",
//				"A0306",
//				"A0307",
//				"A0401",
//				"A0402",
//				"A0403",
//				"A0404",
//				"A0405",
//				"A0406",
//				"A0407",
//				"A0408",
//				"A0409",
//				"A040A",
//				"A040B",
//				"A040C",
//				"A040D",
//				"A040E",
//				"A040F",
//				"A040G",
//				"A040H",
//				"A040I",
//				"A040J",
//				"A040K",
//				"A040L",
//				"A040M",
//				"A040N",
//				"A0901",
//				"A0902",
//				"A0903",
//				"A0904",
//				"A0905",
//				"A0906",
//				"A0907",
//				"A0908",
//				"A0909",
//				"A090A",
//				"A090B",
//				"A090C",
//				"A090D",
//				"A090E",
//				"A0A01",
//				"A0A02",
//				"A0A03",
//				"A0A04",
//				"A0A05",
//				"A0A06",
//				"A0A07",
//				"A0A0A",
//				"A0A0B",
//				"A0A0C",
//				"A0A0D",
//				"A0A0E",
//				"A0A0F",
//				"A0A0G",
//				"A0A0H",
//				"A0A0I",
//				"A0A0K",
				"A0B01",
				"A0B02",
				"A0B03",
				"A0B04",
				"A0B05",
				"A0B06",
				"A0B07",
				"A0B08",
				"A0B09",
				"A0B0A",
				"A0H01",
				"A0I01",
				"A0I02",
				"A0I03",
				"A0I04",
				"A0I05",
				"A0I06",
				"A0I07",
				"A0I08",
				"A0I09",
				"A0I0A",
				"A0O01",
				"A0O02",
				"A0O03",
				"A0O04",
				"A0O05",
				"A0O06",
				"A0O07",
				"A0O08",
				"A0O09",
				"A0O0A",
				"A0O0B",
				"A0O0C",
				"A0O0D",
				"A0O0E",
				"A0O0F",
				"A0O0G",
				"A0O0H",
				"A0O0I",
				"A0O0J",
				"A0O0K",
				"A0S01",
				"A0S02",
				"A0S03",
				"A0S04",
				"A0S05",
				"A0S06",
				"A0S07",
				"A0S08",
				"A0S09",
				"A0S0A",
				"A0S0B",
				"A0S0C",
				"A0S0D",
				"A0S0E",
				"A0S0F",
				"A0S0G",
				"A0S0H",
				"A0S0I",
				"A0S0J",
				"A0S0K",
				"A0S0L",
				"A0S0M",
				"A0S0N",
				"A0S0O",
				"A0S0P",
				"A0S0Q",
				"A0S0R",
				"A0S0S",
				"A0S0T",
				"A0S0U",
				"A0S0V",
				"A0S0W",
				"A0S0X",
				"A0S0Y",
				"A0S0Z",
				"A0S10",
				"A0S11",
				"A0S12"
				};
		StringBuilder stringBuilder = new StringBuilder();
		for(int i = 0; i < codes.length; i++) {
			secondGet = new GetMethod(secondURL + level2 + codes[i]);
			CatchDataUtil.setHeaders(secondGet, secondURL + level2 + codes[i],
					CatchDataUtil.getWebSite(secondURL + level2 + codes[i]));
//			LOG.info(secondURL + level2 + codes[i]);
			try {
				client.executeMethod(secondGet);
				stringBuilder.append(secondGet.getResponseBodyAsString()
						.substring(1, secondGet.getResponseBodyAsString().length()-1) + ",");
			} catch (HttpException e) {
				LOG.info(e);
			} catch (IOException e) {
				LOG.info(e);
			} finally {
				secondGet.releaseConnection();
			}
		}
		LOG.info(stringBuilder);
	}
	
	public static void main(String[] args) {
		CatchNationalData2 instance = new CatchNationalData2();
		instance.excute();
	}

}
